package com.sqm.a4;

import edu.princeton.cs.algs4.StdIn;

import java.lang.reflect.Array;

/**
 * @Author sun.qingmeng
 * @Date 2021/2/10 10:34 下午
 * 编写一个静态方法 histogram()，接受一个整型数组 a[] 和一个整数 M 为参数并返回一个大小
 * 为 M 的数组，其中第 i 个元素的值为整数 i 在参数数组中出现的次数。如果 a[] 中的值均在 0 到 M-1
 * 之间，返回数组中所有元素之和应该和 a.length 相等。
 */
public class Ex_1_1_15 {
    private static int[] histogram(int[] a, int M) {
        int[] r = new int[M];
        for (int i = 0; i < a.length; i++) {
            if (a[i] >= 0 && a[i] < M) {
                r[a[i]]++;
            }
        }
        return r;
    }
    public static void main(String[] args) {
        int[] a = {1,2,3,1,2,4,1,4,1,7,1,5};
        int M = 8;
        int sum = 0;
        for (int i: histogram(a, 8)) {
            System.out.print(String.valueOf(i) + " ");
            sum += i;
        }
        System.out.println();
        System.out.println(a.length);
        System.out.println(sum);
    }
}
